In this specification, the term integrated circuit is used to describe a chip or MCM (multi-chip module) embedded with DFT (design-for-test) techniques.
The scan-based DFT technique in either a scan-test or a self-test environment is the most widely used method for producing high quality integrated circuits. The scan-based DFT technique requires that all storage elements existing in an integrated circuit, such as D flip-flops, be replaced with their scan-equivalent storage elements, such as Scan D flip-flops, otherwise known as scan cells. These scan cells are then connected to form one or more scan chains each controlled by one or more scan enable (SE) signals and scan clocks (SCKs) each belonging to a separate clock or frequency domain.
The testing of a scan-based integrated circuit proceeds in a sequence of shift and capture cycles, which are repeated for the desired number of test patterns. In order to distinguish between shift and capture cycles, a scan enable (SE) signal local to all scan cells in a clock domain is used to select either the shift path or the functional path as the path to provide a new value to update such a scan cell. In the shift cycle, the shift path is selected in order to shift in the desired test stimuli into scan cells belonging to all the different scan chains. In the capture cycle, the functional path is selected in order to update the scan cells with the test response from the combinational part of the integrated circuit.
Typically, in the scan-test environment, all test control signals including scan enable (SE) signals and scan clocks (SCKs) as well as test stimuli are provided externally from an ATE (automatic test equipment), and test responses are also collected and compared by an ATE. In the self-test environment, on the other hand, all test control signals are generated internally using a BIST (Built-In Self-Test) controller, which also includes the circuitry for internal generation and compaction of test stimuli and test responses using PRPGs (pseudo-random pattern generators) and MISRs (multiple-input signature registers), respectively. Related prior-art information can be found in books written by Abromovici et al. (1990), Nadeau-Dostie (2000), and Crouch (2000).
An added level of complexity arises when at-speed test is attempted to be performed on a scan-based integrated circuit. At-speed test can be implemented with either the last-shift launch methodology or the capture launch (double capture) methodology. When this is attempted in either a scan-test or a self-test environment, a new form of synchronization and timing waveforms are required for test controls and data signals in order for the test to be performed correctly. An additional level of complexity arises due to the numerous different implementations that have been used to implement at-speed test.
The following are examples of some of the prior-art solutions for testing or diagnosing an scan-based integrated circuit and their associated problems:
Prior-art scan-test solutions, documented in the book by Abromovici et al. (1990), suffer from the following problems: First, an ATE may need to provide many high-frequency scan enable (SE) signals and scan clocks (SCKs) to a scan-based integrated circuit in order to conduct at-speed test. In addition, to realize real at-speed test and to avoid clock-skew issues crossing clock domains, each clock domain may need to be provided with individual scan enable (SE) signals and scan clocks (SCKs). This will make the ATE complicated and expensive, which results in higher test costs. Second, even for reduced-speed scan-test or debug, it is not easy to conduct with simple hardware such as a low-cost DFT tester or debugger, because an ATE still needs to provide most of the test controls. Third, since different waveforms need to be generated for shift and capture cycles in order to address the test power issues and to target various fault types, the test controls needed from an ATE often become complicated. Therefore, it is clear that, if the interface between an ATE and a scan-based integrated circuit can be simplified, low-cost DFT testers or debuggers can be used. In addition, DFT design costs will also be reduced.
Prior-art self-test solutions, documented in U.S. Pat. No. 5,349,587 issued to Nadeau-Dostie (1994), U.S. Pat. No. 5,680,543 issued to Bhawmik (1997), U.S. Pat. No. 6,327,684 issued to Nadeau-Dostie (2001), and the paper co-authored by Hetherington et al. (2000), suffer from the following problem: a BIST controller often needs to be re-designed once different requirements arise related to the test power and test type issues. This will complicate the BIST design flow and design costs will also increase.
From the previous discussion, it is also clear that, while there has been extensive work done on implementing the numerous flavors of scan-based tests, there has not been enough work done on implementing these tests in a way that they can co-exist together in the same circuit for both scan-test and self-test. In fact, most of the current implementations require adopting a design methodology that is completely aware of the type of the specific scan-based test implementation, and precludes other implementations from being easily implemented in the same circuit. This is also a reason for escalating test design costs.
Thus, there is a need to implement an improved method and apparatus for unifying self-test with scan-test that allows designers to implement reduced-speed test as well as different flavors of at-speed test by generating the necessary test control signals for shift and capture cycles. The basic idea is to implement the test control functions common to both scan-test and self-test with a special piece of circuitry to be embedded in a scan-based integrated circuit. This way, the test interface with an ATE or a BIST controller can be greatly simplified. The method and apparatus devised based on this idea not only unifies scan-test and self-test but also allows a low-cost DFT tester or a low-cost DFT debugger to be used for testing or diagnosing a scan-based integrated circuit.